home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 11 / Cream of the Crop 11-2.iso / os2 / rsynth1.zip / readme.os2 < prev    next >
Text File  |  1995-12-19  |  5KB  |  107 lines

  1. This is a rough port of Rsynth2.0, an English text-> speech app originally written
  2. for a Sun Sparcstation.  I will not be working on this further, so I am making this 
  3. available in hopes that some other programmer will pick up the torch and complete
  4. this.  If you desire to be this programmer, or if you use this for anything, 
  5. please contact me (djd@cris.com) and let me know what you have accomplished and 
  6. how you have accomplished it.
  7.  
  8. Rsynth, with just a little work, can be modified to become a Speech output library,
  9. good for that talking Web Browser the world so desparately needs.  Or maybe the
  10. IRC client that speaks......
  11.  
  12. Using the Executables:
  13.  
  14. There are three OS/2 executables in this Zip file. They are all written with EMX/GCC,
  15. so you will need the EMXRT stuff to use them.  They are:
  16.  
  17. Say.exe        - the actual text->speech app
  18. mkdictdb.exe   - Makes the required Dictionary Database file from an external Dictionary
  19. dlookup.exe    - Looks up Phonemes from the database Dictionary.
  20.  
  21. Running Say.exe:
  22.  
  23. Typing "Say --help" on the command line will show you all the command line options.  The
  24. important ones for OS/2 are as follows:
  25.  
  26.      -o filename   This saves a file in AU format. If you have installed MMOS/2 AU sound
  27.                    support, you can then use PLAY.CMD to listen to it.  AU sound support
  28.                    for MMOS/2 is part of the Warp BonusPak - you will need to install 
  29.                    this if you have yet to do so.
  30.  
  31.      -f frequency  Fundamental Frequency for the voice - default is 1330 Hz.  
  32.  
  33.      -v            Verbose output- print a lot of stuff to the screen while doing
  34.                    the conversion. Using this will currently cause a floating point
  35.                    underflow exception, so I recommend not using it, unless you enjoy
  36.                    floating point underflow exceptions.
  37.  
  38.       <filename    get text to say from file filename, otherwise takes stuff to say
  39.                    from command line.
  40.  
  41. Sayit.cmd is a simple REXX program that will speak words entered at the command line, 
  42. typing 'sayit Hello there OS/2 user' will result in your computer saying hello to you.
  43. I have added some of the additional command line parameters there to produce what I
  44. think is better speech output - YMMV.
  45.  
  46. Mkdictdb.exe:
  47. dlookup.exe :
  48.  
  49. I have not included a dictionary or a dictionary database in the distribution.  Say
  50. will work without it, but is more accurate in pronunciation with one.  Read the README
  51. file for information as to where to find American English and British English 
  52. dictionaries and how to convert them using mkdictdb.exe.  These dictionaries are in 
  53. a fairly simple ASCII format, so it is pretty easy to modify or add words to them.
  54. So, for instance, the word "LuxuryYacht" could actually be pronounced 
  55. Throat-Warbler-Mangrove, or you could do horrible things to the pronunciation of
  56. the word "Microsoft". Or you could actually do something useful with it - your choice.
  57.  
  58. Be warned that the resulting Dictionary file is fairly large.  Say.exe looks for a
  59. dictionary file in the current working directory named Adict.db by default, the
  60. command line switch -d b causes it to look for the alternate dictionary bdict.db.
  61.  
  62. Notes for Programmers:
  63.  
  64. Everything here compiles under EMX/GCC, using Gnumake as the make utility.  You will
  65. also need to have GNU GDBM ported over to OS/2 - I highly recommend Kai Uwe Rommel's
  66. port, which can currently be found on ftp.leo.org. Your mileage may vary with other
  67. development environments.
  68.  
  69. Stuff that needs to be done:
  70.  
  71. Floating Point Underflow problem
  72.  
  73. EMX/GCC by default masks all floating point underflows, with the action of returning
  74. a zero when an underflow occurs.  This works great until something fprints to stdout
  75. or stderr, which will cause the next underflow to raise the exception, killing the 
  76. program.  This does not occur under GDB (Yuck).  My patch has been not to use the 
  77. -v option, which prints stuff to the screen, and to kill all other screen output.
  78. There's got to be a better way to handle this - please let me know what it is?
  79. Incidentally, all of the underflows occur in the file nsynth.c.
  80.  
  81.  
  82. Sound Output 
  83.  
  84. Having Say.exe write .AU files is kinda kludgy - it should talk directly to MMOS/2.
  85. Not only that, but it should write WAV files, not AU files, if file writing is
  86. desired.  This is done by writing real functions in hplay.c, instead of the dummy 
  87. ones currently in there.  I'd like to see the results of this as well, if anyone
  88. tackles this one.
  89.  
  90. Creating a Speech Output Library
  91.  
  92. It should be fairly easy to take functions from say.c and create a speech output
  93. API - speech_init(), Say_string(), say_file(), Speech_close() would be  a minimal
  94. function set.
  95.  
  96. Placing the dictionary in a standard place  
  97.  
  98. Anywhere in the path?  In TCPIP\ETC? whatever....
  99.  
  100. Mods to Improve Speech Output Quality
  101.  
  102. ANyway, that should get you started. If you play with this code, I'd really appreciate
  103. seeing what you've done with it. Happy Speechifying!
  104.  
  105. Derek J Decker         djd@cris.com 
  106.  
  107.